Ext.define('Seq.data.field.Lookup', {
    extend: 'Ext.data.field.Field',

    alias: ['data.field.lookup'],

    config: {
        key: undefined,
        value: 'name',
        store: undefined
    },

    mapping: function (data) {
        var me = this, fields = me.key.split('.'), value = data;
        for (var i in fields) {
            if (value) {
                value = value[fields[i]];
            }
        }
        var record = !Ext.isEmpty(value) && Ext.getApplication().getStore(me.store).getById(value);
        return record ? record.data[me.value] : value;
    }

});